home *** CD-ROM | disk | FTP | other *** search
/ Windows Game Programming for Dummies (2nd Edition) / WinGamProgFD.iso / pc / DirectX SDK / DXSDK / bin / DXUtils / AppWizard / DXAppwiz.awx / TEMPLATE / DIUTIL.H < prev    next >
Encoding:
C/C++ Source or Header  |  2001-10-25  |  1.9 KB  |  61 lines

  1. //-----------------------------------------------------------------------------
  2. // File: DIUtil.h
  3. //
  4. // Desc: DirectInput support using action mapping
  5. //-----------------------------------------------------------------------------
  6. #ifndef DIUTIL_H
  7. #define DIUTIL_H
  8. #include <dinput.h>
  9.  
  10.  
  11.  
  12.  
  13. //-----------------------------------------------------------------------------
  14. // Name: class CInputDeviceManager
  15. // Desc: Input device manager using DX8 action mapping
  16. //-----------------------------------------------------------------------------
  17. class CInputDeviceManager
  18. {
  19. public:
  20.     struct DeviceInfo
  21.     {
  22.         LPDIRECTINPUTDEVICE8 pdidDevice;
  23.         LPVOID               pParam;
  24.     };
  25.  
  26.     typedef HRESULT (CALLBACK *LPDIMANAGERCALLBACK)(CInputDeviceManager::DeviceInfo* pDeviceInfo, const DIDEVICEINSTANCE* pdidi, LPVOID);
  27.  
  28. private:
  29.     BOOL                    m_bCleanupCOM;
  30.     HWND                    m_hWnd;
  31.     TCHAR*                  m_strUserName;
  32.  
  33.     LPDIRECTINPUT8          m_pDI;
  34.     DeviceInfo*             m_pDevices;
  35.     DWORD                   m_dwMaxDevices;
  36.     DWORD                   m_dwNumDevices;
  37.     DIACTIONFORMAT          m_diaf;
  38.  
  39.     LPDIMANAGERCALLBACK  m_AddDeviceCallback;
  40.     LPVOID               m_AddDeviceCallbackParam;
  41.  
  42. public:
  43.     // Device control
  44.     HRESULT AddDevice( const DIDEVICEINSTANCE* pdidi, LPDIRECTINPUTDEVICE8 pdidDevice );
  45.     HRESULT GetDevices( DeviceInfo** ppDeviceInfo, DWORD* pdwNumDevices );
  46.     HRESULT ConfigureDevices( HWND hWnd, IUnknown* pSurface, VOID* pCallback, DWORD dwFlags, LPVOID pvCBParam );
  47.     VOID UnacquireDevices();
  48.     VOID SetFocus( HWND hWnd );
  49.  
  50.     // Construction
  51.     HRESULT SetActionFormat( DIACTIONFORMAT& diaf, BOOL bReenumerate );
  52.     HRESULT Create( HWND hWnd, TCHAR* strUserName, DIACTIONFORMAT& diaf, LPDIMANAGERCALLBACK AddDeviceCallback, LPVOID pCallbackParam );
  53.  
  54.     CInputDeviceManager();
  55.     ~CInputDeviceManager();
  56. };
  57.  
  58. #endif
  59.  
  60.  
  61.